mddfandomcom_pt_br-20200214-history
MDDWiki:MDD2D Scripting
O MDD 2D usa a linguagem LUA para os scripts. Essa é a lista de comandos de script atualmente implementados em adição aos padrões da linguagem LUA. Criação de Coisas create_npc create_npc(string name, int spriteID, int x, int y, function talkfunct, function updatefunct) Valor Retornado: Um gerenciador para o NPC criado. Cria um novo NPC com o nome name nas coordenadas x:y que irá aparecer com o sprite listado no arquivo npcs.xml sobre o respectivo spriteID. A cada game tick a função updatefunct é chamada para lidar com o NPC. Quando um personagem fala com o NPC através da função talkfunct é chamada a respectiva função para lidar com o NPC e com o Personagem. mana.monster_create mana.monster_create(int monsterID, int x, int y) Valor Retornado: Um Gerenciador para o monstro criado. Invoca um novo monstro do tipo monsterID no mapa atual através das coordenadas em pixels x:y. mana.trigger_create mana.trigger_create(int x, int y, int width, int height, string functionname, int arg, bool once) Cria uma nova área de trigger com a altura e largura dadas em pixels da posição do mapa x:y em pixels. Quando uma coisa andar sobre essa área, a função com o nome ''functionname é chamada com o gerenciador de coisas e com arg como argumento. Quando once for falso a função será chamada a cada game tick que a coisa estiver dentro desta área. Quando once for verdadeiro ela só é chamada novamente quando a coisa entrar e sair da área. mana.effect_create mana.effect_create(int id, int x, int y) mana.effect_create(int id, being b) Aciona o efeito id através do arquivo effects.xml do cliente (partículas e/ou sons) na localização do mapa x:y ou na coisa b. Isso não possui efeito na jogabilidade. Cuidado: Lembre-se que os cliente podem desligar os efeitos de partículas por questões de performance. Portanto você não deve utilizar isso para entradas visuais importantes. Entrada e Saída do_message do_message(handle npc, handle character, string message) Cuidado: Somente deve chamada a partir da função talk de um NPC. Mostra uma caixa de diálogo na tela do personagem ch mostrando a string msg. Para a thread atual até que o usuário clique em “OK”. do_choice do_choice(handle npc, handle character, item1, item2, ... itemN) Valor Retornado: Número da opção que o jogador escolheu (começando por 1). Cuidado: Deve ser chamado apenas a partir da função talk de um NPC. Mostra uma Caixa de Diálogo de NPC na tela do usuário com um número das opções para que seja escolhida uma. Para a thread atual até que o usuário selecione uma ou aborte a thread atual clicando em “cancelar”. Itens são strings ou tabelas de strings (indices serão ignorados, mas presumido que estejam em ordem). Então, do_choice(npc, ch, “A”, {“B”, “C”, “D”}, “E”) é o mesmo que do_choice(npc, ch, “A”, “B”, “C”, “D”, “E”). mana.being_say mana.being_say(handle being, string message) Faz uma coisa, que pode ser um personagem, monstro ou NPC, falar a mensagem message como se fosse dita por um jogador qualquer na barra de bate-papo. mana.chatmessage mana.chatmessage(handle character, string message) Mostra uma mensagem no chatlog do personagem e irá aparecer como uma mensagem privada vinda do “Servidor”. Interação com o Inventário mana.npc_trade mana.npc_trade(handle npc, handle character, bool mode, {int item1id, int item1cost, int item1amount}, ..., {int itemNid, int itemNcost, int itemNamount}) Abre uma janela de Negociação para o personagem enquanto estiver falando com o NPC. mode é true para vendas e false para compras. Você precisa setar cada item que o NPC está Comprando/Vendendo, o custo e a sua quantidade máxima em {}. mana.chr_inv_count mana.chr_inv_count(handle character, int id1, ..., int idN) Valores Retornados: Um número de inteiros com a quantidade de itens (id) carregados pelo personagem. mana.chr_inv_change mana.chr_inv_change(handle character, int id1, int number1, ..., int idN, numberN) Valor Retornado: Booleano true se sucesso, booleano false se falha. Altera o número de itens com o ID de item id que o usuário possui. Você pode alterar quaisquer número de itens com essa função passando múltiplos ids e números pares. Uma falha pode ser causada por tentar tomar itens que o usuário não possui. Cuidado: Quando uma das operações falha, a operação seguinte será ignorada antes de ser executada. Por essa razão você deve sempre checar se o usuário possui os itens que você deseja tomar usando mana.chr_inv_count. mana.chr_money mana.chr_money(handle character) Valor Retornado: As Moedas atualmente carregadas pelo personagem. mana.chr_money_change mana.chr_money_change(handle character, int amount) Altera a quantidade de moedas carregadas pelo personagem. Cuidado: Antes de reduzir as moedas você deve se certificar que o personagem possui moedas suficientes usando a função mana.chr_money. Interação com os Personagens e Coisas get_quest_var(ch, name) Não Documentado. mana.chr_set_quest(ch, name, value) Não Documentado. mana.being_walk Não Documentado. mana.being_damage Não Documentado. mana.get_beings_in_circle Não Documentado. mana.being_get_name mana.being_get_name(handle being) Valor Retornado: Nome da Coisa. mana.being_type mana.being_type(handle being) Valor Retornado: Tipo da Coisa passada. Essas constantes de tipos são definidas em libmana-constants.lua: 0 TYPE_ITEM 1 TYPE_ACTOR 2 TYPE_NPC 3 TYPE_MONSTER 4 TYPE_CHARACTER 5 TYPE_EFFECT 6 TYPE_OTHER mana.being_get_action mana.being_get_action(handle being) Valor Retornado: Ação sendo executada atualmente pela Coisa. Essas constantes de ação são definidas em libmana-constants.lua: 0 ACTION_STAND 1 ACTION_WALK 2 ACTION_ATTACK 3 ACTION_SIT 4 ACTION_DEAD 5 ACTION_HURT mana.being_set_action mana.being_set_action(handle being, int action) mana.being_get_direction mana.being_get_direction(handle being) Valor Retornado: Direção atual da Coisa. Essas constantes de direção serão definidas em libmana-constants.lua: 0 DIRECTION_DEFAULT 1 DIRECTION_UP 2 DIRECTION_DOWN 3 DIRECTION_LEFT 4 DIRECTION_RIGHT 5 DIRECTION_INVALID mana.being_set_direction mana.being_set_direction(handle being, int direction) Seta a direção atual da Coisa passada. Direções são as mesmas do que em mana.being_get_direction. mana.chr_warp mana.chr_warp(handle character, int mapID, int posX, int posY) Teleporta o personagem para a posição posX:posY no mapa através do número do ID do mapID. O mapID pode ser substituído nil para teleportar o personagem para uma nova posição no mesmo mapa. mana.posx mana.posx(handle being) Valor Retornado: A posição horizontal da coisa em pixels mensurada a partir da borda esquerda do mapa em que está atualmente ativado. mana.posy mana.posy(handle being) Valor Retornado: A posição horizontal da coisa em pixels mensurada a partir da borda esquerda do mapa em que está atualmente ativado. mana.being_get_attribute mana.being_get_attribute(handle being, int attribute) Valor Retornado: Retorna a pontuação do atributo da coisa. Pode também ser utilizado para perguntar os níveis de habilidades dos personagens. mana.chr_get_exp mana.chr_get_exp(handle character, int attribute) Valor Retornado: O total de experiência coletada pelo personagem em atributos de habilidade. mana.chr_give_exp mana.chr_give_exp(handle character, int attribute, int amount int optimalLevel) Dá ao personagem uma quantidade de experiência no atributo da habilidade. Quando um nível ótimo é setado (depois de 0), a experiência é reduzida quando o nível da habilidade dos personagens é maior que isso. mana.exp_for_level mana.exp_for_level(int level) Valor Retornado: Retorna o total de experiência necessário (contado a partir do nível 0) para alcançar um nível em qualquer habilidade. mana.char_get_hair_color mana.chr_get_hair_color(handle character) Valor Retornado: O ID da cor de cabelo do personagem mana.char_set_hair_color mana.chr_set_hair_color(handle character, int color) Seta o ID de Cor de Cabelo do Personagem mana.char_get_hair_style mana.chr_get_hair_style(handle character) Valor Retornado: O ID do estilo de cabelo do Personagem mana.char_set_hair_style mana.chr_set_hair_style(handle character, int style) Seta o ID do estilo de Cabelo do Personagem mana.chr_get_rights mana.chr_get_rights(handle character) Valor Retornado: Nível de Acesso da Conta do Personagem. Efeitos de Status mana.being_apply_status mana.being_apply_status(handle Being, int status_id, int time) Dá um efeito de status a uma coisa usando o status_id, efeitos de status não funcionam em NPCs. o tempo é em game ticks. mana.being_remove_status mana.being_remove_status(handle Being, int status_id) Remove um efeito de status dado a uma coisa. mana.being_has_status mana.being_has_status(handle Being, int status_id) Valor Retornado: Booleano se a coisa possuir um efeito de status. mana.being_get_status_time mana.being_get_status_time(handle Being, int status_id) Valor Retornado: Número de ticks restantes do efeito de status. mana.being_set_status_time mana.being_set_status_time(handle Being, int status_id, int time) Seta o tempo que um efeito de status terá efeito em uma coisa. Agendamento atinit atinit(function() body end) Adiciona uma função que será executada quando o servidor de jogo (gameserver) carrega o mapa a que o script pertence. Geralmente usado para colocar NPCS ou triggers nos mapas. Quaisquer números de funções podem ser adicionadas desse jeito. schedule_in schedule_in(seconds, function() body end) Executa a função a cada seconds segundos. schedule_every schedule_every(seconds, function() body end) Executa a função a cada seconds segundos a partir da inicialização. on_death on_death(handle being, function() body end) Executa uma função quando a 'coisa' for morta. Note que isso não irá acontecer mais depois que a 'coisa' deixar o mapa. on_remove on_remove(handle being, function() body end) Executa uma função quando a ''coisa não estiver mais no mapa por alguma razão (deixa o mapa voluntáriamente, se teleporta, desloga, ou é limpa depois de ser morta ou qualquer outra coisa). Informações Gerais mana.get_map_id mana.get_map_id() Valor Retornado: O número ID do mapa em que o script está rodando. OBS.: